
/**
 * 缓存工具类，后期同步调用底层方法
 **/
import { AsyncStorage } from 'react-native'

/**
 * 获取缓存中的值
 * @param {String} key 缓存中的标识符
 * @returns {Promise<String>}
 */
async function getItem(key) {
  let item = await AsyncStorage.getItem(key)
  return item
}

/**
 * 存储进缓存
 * @param {String} key 缓存中的标识符
 * @param {String} value 待存储的值
 * @returns {Promise<void>}
 */
async function setItem(key, value) {
  await AsyncStorage.setItem(key, value)
}

/**
 * 移除缓存中的某个值
 * @param {String} key 缓存中的标识符
 * @returns {Promise<void>}
 */
async function removeItem(key) {
  await AsyncStorage.removeItem(key)
}

/**
 * 清除缓存
 * @returns {Promise<void>}
 */
async function clear() {
  await AsyncStorage.clear()
}

/**
 * 缓存操作工具类
 * @type {{getItem: (function(String)), setItem: (function(String,String)),removeItem: function(String)),clear: (function())}}
 */
const XiaobuStorage = {
  getItem,
  setItem,
  removeItem,
  clear
}

export default XiaobuStorage